import com.hbnu.controller.BooksController;
import com.hbnu.controller.UserController;
import com.hbnu.domain.UserInfo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.Scanner;

//配置测试运行器和 Spring 配置文件位置
@RunWith(SpringJUnit4ClassRunner.class) // 让测试运行在 Spring 容器中
@ContextConfiguration(classes = com.hbnu.config.SpringConfig.class) // 指定 Spring 配置类（或 XML 路径）

public class test01 {

    @Autowired
    private UserController userController;

    @Autowired
    private BooksController booksController;

    @Test
    public void testLogin() {

        Scanner sc = new Scanner(System.in);
        //1.登录
        System.out.println("请输入您的名称：");
        String uname = sc.next();
        System.out.println("请输入您的密码：");
        String upsw = sc.next();

        int chance = 6;
        while (true) {
            UserInfo loginUser = userController.userLogin(uname, upsw);//如果登录成功则得到信息

            if (loginUser != null) {
                //2.实现功能
                System.out.println("欢迎您，" + loginUser.getUname() + loginUser.getUrole() + "！！以下是所有图书信息：");
                booksController.searchAllBooks();
                String urole = loginUser.getUrole();

                if (urole.equals("管理员")) {
                    //3.按角色分配功能
                    while (true) {
                        System.out.println("请输入您要执行的操作（输入数字）：1、借书 2、还书 3、管理图书 4、退出系统");
                        int n = sc.nextInt();
                        if(n==1||n==2){
                            userController.basicFuc(n);
                        } else if (n == 3) {
                            System.out.println("高级功能如下（输入数字）：1、添加图书 2、修改图书 3、删除图书");
                            int i = sc.nextInt();
                            userController.advanceFuc(i);
                        } else {
                            System.out.println("正在退出系统...");
                            break;
                        }
                    }
                } else {
                    while (true) {
                        System.out.println("请输入您要执行的操作（输入数字）：1、借书 2、还书 3、退出系统");
                        int n = sc.nextInt();
                        if (n==1||n==2){
                            userController.basicFuc(n);
                        }else{
                            System.out.println("正在退出系统...");
                            break;
                        }
                    }
                }
                break;
            } else {
                --chance;
                if (chance == 0) {
                    System.out.println("由于多次登录失败，已强制退出系统！！");
                    break;
                }
                System.out.println("您的名称或密码输入错误，还有" + (chance) + "次机会");
                System.out.println("请输入您的名称：");
                uname = sc.next();
                System.out.println("请输入您的密码：");
                upsw = sc.next();
            }
        }
    }
}
